//封装ajax方法,post get两个方法封装到一个对象里面去
//把这个对象绑定到顶层上去 window
var myajax = window.myajax = {};

	//先封装get方法
	myajax.get = function(URL, stringJSON, callback){
		//ajax固定模板
		//第一步，调用内置函数  兼容问题 IE6 ActiveXObject('Microsoft.XMLHTTP')
		if(window.XMLHttpRequest){
			var xhr = new XMLHttpRequest();
		}else{
			var xhr = new ActiveXObject('Microsoft.XMLHTTP');
		};
		//第二步，监听事件
		xhr.onreadystatechange = function(){
			//判断接收码
			if(xhr.readyState == 4){
				//判断状态成功与否
				if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
					callback(null, xhr.responseText);
				}else{
					callback(new Error('请求的数据不存在'), undefined)
				}
			}
		};
		//拼字符串
		var str = myajax.JSONToString(stringJSON);
		URL = str ? (URL + '?' + str) : URL;
		//第三步,配置请求
		xhr.open('get', URL, true);
		//第四步,发送请求
		xhr.send();
	};

	//封装post方法
	myajax.post = function(URL, stringJSON, callback){
		//ajax固定模板
		//第一步，调用内置函数  兼容问题 IE6 ActiveXObject('Microsoft.XMLHTTP')
		if(window.XMLHttpRequest){
			var xhr = new XMLHttpRequest();
		}else{
			var xhr = new ActiveXObject('Microsoft.XMLHTTP');
		};
		//第二步，监听事件
		xhr.onreadystatechange = function(){
			//判断接收码
			if(xhr.readyState == 4){
				//判断状态成功与否
				if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
					callback(null, xhr.responseText);
				}else{
					//callback(throw new Error('请求的数据不存在'), undefined)
				}
			}
		};
		//第三步,配置请求
		xhr.open('post', URL, true);
		//第四步,配置请求头信息 发送请求
		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		xhr.send(myajax.JSONToString(stringJSON));
	};
	
	//JSONP方法
	myajax.jsonp = function(URL,queryJSON,callbackname,callback){
		//在window对象上强行增加一个属性，这个属性就是全局变量，是一个函数的名字，值是一个函数
		window[callbackname] = callback;
		console.log(fun);
		//创建节点
		var scriptObj = document.createElement("script");
		
		//拼接字符串
		var querystring = myajax.JSONToString(queryJSON);
		//设置新创建的script标签的src属性，HTTP上行请求将发出
		scriptObj.src = querystring ? (URL + "?" + querystring) : URL;

		//添加节点
		document.body.appendChild(scriptObj);

		//删除这个script标签
		document.body.removeChild(scriptObj);
	}

	myajax.JSONToString = function(json){
		var arr = [];	//结果数组
		for(var k in json){
			arr.push(k + "=" + encodeURIComponent(json[k]));
		}
		return arr.join("&"); //join->字符串
	};


